import { createRouter, createWebHistory } from 'vue-router'
// 布局组件（全局唯一，直接导入）
import Layout from '@/layout/LayoutView.vue'

// 路由配置：统一使用动态懒加载（() => import()）
const routes = [
  // 1. 重定向模块（隐藏，用于页面重定向）
  {
    path: '/redirect',
    component: Layout,
    hidden: true,
    children: [
      {
        path: '/redirect/:path(.*)',
        component: () => import('@/views/DashboardView.vue') // 动态懒加载
      }
    ]
  },

  // 2. 登录页（隐藏，不显示在侧边栏）
  {
    path: '/login',
    component: () => import('@/views/user/LoginView.vue'), // 动态懒加载
    hidden: true
  },

  // 3. 根路径：默认显示布局 + 控制台
  {
    path: '/',
    component: Layout,
    redirect: '/dashboard', // 默认跳转到控制台
    children: [
      {
        path: 'dashboard',
        name: 'Dashboard',
        component: () => import('@/views/DashboardView.vue'), // 动态懒加载
        meta: {
          title: '控制台',
          icon: 'House', // 对应Element Plus的House图标（需在Layout中导入）
          affix: true // 固定显示，不随侧边栏折叠隐藏
        }
      }
    ]
  },

  // 4. 个人信息模块（隐藏，通过顶部下拉菜单访问）
  {
    path: '/user',
    component: Layout,
    redirect: '/user/profile',
    hidden: true,
    children: [
      {
        path: 'profile',
        name: 'UserProfile',
        component: () => import('@/views/user/ProfileView.vue'), // 动态懒加载
        meta: { title: '个人信息' }
      }
    ]
  },

  // 5. 学习中心模块（侧边栏下拉显示）
  {
    path: '/learning',
    component: Layout,
    redirect: '/learning/taskList', // 默认跳转到任务列表
    alwaysShow: true, // 强制显示父菜单（即使只有1个子项）
    name: 'Learning',
    meta: {
      title: '学习中心',
      icon: 'Book' // 对应Element Plus的Book图标
    },
    children: [
      {
        path: 'categoryList',
        name: 'LearningCategoryList',
        component: () => import('@/views/learning/CategoryListView.vue'), // 动态懒加载
        meta: { title: '任务分类' }
      },
      {
        path: 'taskList',
        name: 'LearningTaskList',
        component: () => import('@/views/learning/TaskListView.vue'), // 动态懒加载
        meta: { title: '任务列表' }
      },
      {
        path: 'taskListByPage',
        name: 'LearningTaskListByPage',
        component: () => import('@/views/learning/TaskListViewByPage.vue'), // 动态懒加载
        meta: { title: '分页任务列表' }
      }
      ,
      {
        path: 'learningPathListByPage',
        name: 'learningPathListByPage',
        component: () => import('@/views/learning/LearningPathListViewByPage.vue'), // 动态懒加载
        meta: { title: '分页学习路径列表' }
      }
    ]
  },

  // 6. 新闻资讯模块（侧边栏下拉显示）
  {
    path: '/news',
    component: Layout,
    redirect: '/news/articles', // 默认跳转到文章列表
    alwaysShow: true,
    name: 'News',
    meta: {
      title: '新闻资讯',
      icon: 'Document' // 对应Element Plus的Document图标
    },
    children: [
      {
        path: 'articles',
        name: 'NewsArticleList',
        component: () => import('@/views/news/ArticleListView.vue'), // 动态懒加载
        meta: { title: '文章列表' }
      },
      {
        path: 'comments',
        name: 'NewsCommentList',
        component: () => import('@/views/news/CommentListView.vue'), // 动态懒加载
        meta: { title: '评论管理' }
      }
    ]
  },

  // 7. Ai（侧边栏下拉显示）
  {
    path: '/ai',
    component: Layout,
    redirect: '/ai/agi-rainbow', // 默认跳转到文章列表
    alwaysShow: true,
    name: 'Ai',
    meta: {
      title: 'Ai小彩',
      icon: 'Document' // 对应Element Plus的Document图标
    },
    children: [
      {
        path: 'agi-rainbow',
        name: 'AiChat',
        component: () => import('@/views/ai/AgiRainbow.vue'), // 动态懒加载
        meta: { title: 'agi-rainbow' }
      }
    ]
  }

  // 社区模块（如需启用，取消注释并保持动态懒加载）
  // {
  //   path: '/community',
  //   component: Layout,
  //   redirect: '/community/home',
  //   alwaysShow: true,
  //   name: 'Community',
  //   meta: { title: '社区交流', icon: 'Users' },
  //   children: [
  //     {
  //       path: 'home',
  //       name: 'CommunityHome',
  //       component: () => import('@/views/community/CommunityHome.vue'),
  //       meta: { title: '社区首页' }
  //     },
  //     {
  //       path: 'posts',
  //       name: 'CommunityPostList',
  //       component: () => import('@/views/community/PostListView.vue'),
  //       meta: { title: '帖子管理' }
  //     },
  //     {
  //       path: 'topics',
  //       name: 'CommunityTopicList',
  //       component: () => import('@/views/community/TopicListView.vue'),
  //       meta: { title: '话题分类' }
  //     }
  //   ]
  // }
]

// 创建路由实例
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  scrollBehavior: () => ({ top: 0 }), // 跳转后滚动到页面顶部
  routes
})

export default router